package Outils;
/*
 * Created on 2 nov. 03
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */



import org.xml.sax.*;
import org.xml.sax.helpers.LocatorImpl;

import serveurs.Exec;
import serveurs.GedServeur;


public class SimpleContentHandler implements ContentHandler {
		GedServeur ged;
		private Locator locator;
		boolean isGedClasseEncours= false;
		/**
         * Constructeur par defaut. 
         */
        public SimpleContentHandler(GedServeur ged) {
        		super(); 
                this.ged=ged;
                locator = new LocatorImpl();                
        }

        public void setDocumentLocator(Locator value) {
                locator =  value;
        }

        public void startDocument() throws SAXException {
                System.out.println("Debut de l'analyse du document");
                Exec.logger.info("Debut de l'analyse du document");
        }

       
        public void endDocument() throws SAXException {
                System.out.println("Fin de l'analyse du document");
                Exec.logger.info("Fin de l'analyse du document");
        }

        
        public void startPrefixMapping(String prefix, String URI) throws SAXException {
                
        }

        public void endPrefixMapping(String prefix) throws SAXException {
                
        	
        }

       
        public void startElement(String nameSpaceURI, String localName, String rawName, Attributes attributs) throws SAXException {
               if(rawName.equalsIgnoreCase("NewGedUtilisateurs")){
            	   
            	   System.out.print("Import de l'utilisateur: "+attributs.getValue(1)+" Uid: "+attributs.getValue(0));
            	   ged.createUtilisateur(attributs.getValue(1), attributs.getValue(0));
            	   System.out.print(" ... Effectué\n");
               }else if(rawName.equalsIgnoreCase("NewGedClasses")){
 
            	   System.out.print("Import de la classe: "+attributs.getValue(1)+" Uid: "+attributs.getValue(0)+" UidProproeitaire "+attributs.getValue(2));
            	   ged.createGedClasses(attributs.getValue(1), attributs.getValue(0), attributs.getValue(2), null);
            	   System.out.print(" ... Terminé\n");
               }else if(rawName.equalsIgnoreCase("NomAttributs")){
            	   
            	   System.out.print("Import  du nom d'attributs: "+attributs.getValue(1) +" de la classe: "+attributs.getValue(2)+" de type: "+attributs.getValue(0));
            	   ged.getGedClasse(attributs.getValue(2)).setNomAttribut(attributs.getValue(1), attributs.getValue(0));
            	   System.out.print(" ... Terminé\n");
              
               }else if(rawName.equalsIgnoreCase("GedDocuments")){
            	   System.out.print("Import du document : "+attributs.getValue(1) +" de la classe: "+attributs.getValue(3)+" d'uid: "+attributs.getValue(0)+" et de uidPropriétaire: "+attributs.getValue(2));
            	   ged.getGedClasse(attributs.getValue(3)).createGedDoc(attributs.getValue(1), attributs.getValue(0), attributs.getValue(2));
            	   System.out.print(" ... Terminé\n");
            	   
               }else if(rawName.equalsIgnoreCase("DocsAttribut")){
            	   System.out.print("Import de l'attribut du uidGedDocument : "+attributs.getValue(2)+" de la classe: "+attributs.getValue(3)+" d'uid: "+attributs.getValue(0)+" et de valeur: "+attributs.getValue(1));
            	   ged.getGedClasse(attributs.getValue(3)).getGedDocs(attributs.getValue(2)).addGedAttributs(attributs.getValue(0), attributs.getValue(1));
            	   System.out.print(" ... Terminé\n");
            	   
               }else if(rawName.equalsIgnoreCase("GedDataDocuments")){
            	   System.out.print("Import de l' uidGedDocument : "+attributs.getValue(0)+" ...");
            	   ged.base64DecodetoFile(attributs.getValue(1), attributs.getValue(2));
            	   System.out.print(" ... Terminé\n");
            	   
               }
               
        }

        
        public void endElement(String nameSpaceURI, String localName, String rawName) throws SAXException {
        	
        	
        	
        }

        
        public void characters(char[] ch, int start, int end) throws SAXException {
            
        }

        
        public void ignorableWhitespace(char[] ch, int start, int end) throws SAXException {
              
        }

        
        public void processingInstruction(String target, String data) throws SAXException {

        }

       
        public void skippedEntity(String arg0) throws SAXException {
                             
        }

        

}
